BootLoader 程序问题

🔍 溯源 ✍️ Jack | 📅 2025-01-21 | 👍 1 | 原帖↗
#知识星球 #立芯嵌入式 #来源/立芯星球 #技术/Bootloader #技术/STM32 #质量/普通

原帖 | Jack | 2025-01-21 01:29 | 👍1 | 阅读约1

BootLoader 程序问题汇总

1.问题:使用STM32CubeMx生成的代码在配置时钟时HAL_RCC_OscConfig卡死
原因:代码卡死是因为在执行RCC初始化时,由于时间太短没有延时就开始检测标志位HAL_OK是否被置位。故进入了Error_Handler(); 但是这里面啥都没有还有个死循环故当标志位检测不到时卡进死循环。
解决办法:
参考文章:
STM32学习--STM32CUBEMX 生成代码运行时卡死问题解决_stm32cubemx 生成代码卡死-CSDN博客

2.问题:跳转至APP时卡死,无响应
原因:未重新定义APP程序的中断向量表地址
解决办法:找 到 stmtem_stm32fnxx.c 文 件 中 的 SystemInit 函 数 , 找 到 SCB->VTOR =
FLASH_BASE | VECT_TAB_OFFSET 这一句,转到 VECT_TAB_OFFSET 的宏定义,修
改值为前面 APP代码的偏移量的值
参考文章:
Bootloader 跳转到 RT-Thread 或 FreeRTOS(基于 STM32) - 杰瑞鼠 - 博客园
STM32 学习:IAP 简单的IAP例子 - schips - 博客园

3.问题: 跳转APP后代码无法正常初始化,一直在tim2相关守护函数运行(使用的app代码含有FreeRTOS,所以systick使用的是tim2,一直运行在HAL_InitTick以及tim2的中断函数,注:BootLoader使用systick滴答定时器也需要关闭)
原因:未清除Bootloader程序里使用的外设和所有使用的中断标志位
解决办法:
参考文章:
HAL库执行bootloader跳转操作:_hal库bootloader-CSDN博客
四、实验效果

跳转前关中断、重映射向量表等注意事项,另见 Bootloader跳转APP时需要注意什么


相关笔记